package br.com.it4.zmed.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * Entidade básica representando um modelo de conteúdo do laudo.
 * 
 * @author Mozart Silva (mozart.vsilva@gmail.com)
 * 
 */
@Entity
@Table(name = "ZME_MODELO_CONTEUDO_LAUDO", schema = "ZMED")
public class ModeloConteudoLaudo {

    /** O código do modelo de conteúdo de laudo. */
    @Id
    @SequenceGenerator(name = "SEQ_ZME_MODELO_CONTEUDO_LAUDO_ID", sequenceName = "ZMED.SEQ_ZME_MODELO_CONTEUDO_LAUDO")
    @GeneratedValue(generator = "SEQ_ZME_MODELO_CONTEUDO_LAUDO_ID", strategy = GenerationType.SEQUENCE)
    @Column(name = "MPL_CODIGO")
    private Long codigo;

    /** O nome do modelo de conteúdo de laudo. */
    @Column(name = "MPL_NOME")
    private String nome;

    /** O nome do modelo de conteúdo de laudo. */
    @Column(name = "MPL_CONTEUDO")
    private String conteudo;

    /** O tipo do conteúdo do laudo. */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "TCL_CODIGO")
    private TipoConteudoLaudo tipoConteudoLado;

    /**
     * @return O codigo a ser recuperado.
     */
    public Long getCodigo() {
        return codigo;
    }

    /**
     * @param codigo
     *            O codigo a ser atribuido.
     */
    public void setCodigo(Long codigo) {
        this.codigo = codigo;
    }

    /**
     * @return O nome a ser recuperado.
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome
     *            O nome a ser atribuido.
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return O conteudo a ser recuperado.
     */
    public String getConteudo() {
        return conteudo;
    }

    /**
     * @param conteudo
     *            O conteudo a ser atribuido.
     */
    public void setConteudo(String conteudo) {
        this.conteudo = conteudo;
    }

    /**
     * @return O tipoConteudoLado a ser recuperado.
     */
    public TipoConteudoLaudo getTipoConteudoLado() {
        return tipoConteudoLado;
    }

    /**
     * @param tipoConteudoLado
     *            O tipoConteudoLado a ser atribuido.
     */
    public void setTipoConteudoLado(TipoConteudoLaudo tipoConteudoLado) {
        this.tipoConteudoLado = tipoConteudoLado;
    }

}
